# Auther:haijing
# 时间:1023-week8

# 字典的结构（值键对）
# https://docs.python.org/3/tutorial/datastructures.html#dictionaries
# 字典是无序的，我们通过键(key)去查找值(value)，就好像list用索引(index)查找值(value)一样，只不过字典的“索引”被定义了名字
# 字典对key的定义有一定的要求：key是由"不可变"的数据结构才可以定义，list是不能作为key来定义的。
# 字典的key是唯一的，字典的值value也可以不唯一。（list的值是唯一的么？--是）

# 对比 列表和字典
# 列表
# user = [
#     ["a",18,"student"],
#     ["b",22,"worker"]
#  ]
# # 字典
# user_dict = {
#     "a":[18,"student"],
#     "b":[22,"worker"]
# }
# 分别查询b的信息
# print(user[1])-->['b', 22, 'worker']
# print(user_dict["b"])-->[22, 'worker']
# 当数据很大时无法知道其索引值，用字典会比列表好，列表只需要知道数据关键信息即可

# 字典的创建
# 1. info = {key1:value1 , key2:value2 , ...}直接按照字典格式创建
# 2. info_02 = dict(key1=value1 , key2=value2 , ... ) 使用dict()进行字典创建
# 3. 运用字典增加的方式新建字典:
#    info_03 = {} info_03[key1] = value1 ,info_03[key2] = value2 ...
#    举例:
       info_03 = {}
       info_03["a"] = "xm"
       info_03["b"] = "lh"
       info_03["c"] = "xh"
       print(info_03)
# 字典的增加(跟字典的第三种创建方式一样)：
info_03["d"] = "hj"
print(info_03)

# 字典的查询
# info_03[key_name]
# 先查询key是否存在字典里面：key_name in info_03查看是否存在
#                   如果存在返回结果为 True ，不存在为 False

# 正确的查询字典方式
print("a" in info_03)
if "e" in info_03:
    print(info_03["e"])
else:
    print("查询的key不存在")

    -->True
    查询的key不存在

# 修改: 也要先查询key
if "c" in info_03:
        info_03["c"] = "pk"
print(info_03)

# 字典的删除
info_03.pop("a")

# 字典的删除 popitem()随机删除
info_03.popitem()
